function sub_curry(fn) {
    return function() {
      return fn()
    }
  }
  
  function curry(fn, length) {
    length = length || 4
    return function() {
      if (length > 1) {
        return curry(sub_curry(fn), --length)
      } else {
        return fn()
      }
    }
  }
  
  var fn0 = function() {
    console.log(1);
  }
  var fn1 = curry(fn0)
  
  fn1()
  
  // curry(sub_curry(fn0))
  
  // curry(function() {
  //   return fn0()
  // })
  
  fn1()()
  
  // curry(function() {
  //   return fn0()
  // })
  
  fn1()()()()
  // (function() {
  //   return fn0()
  // })()
  fn0()